import request from '../utls/require'

// 用户信息接口
interface UserInfo {
  user_id: number
  username: string
  email: string
  is_staff?: boolean
  is_superuser?: boolean
  session_id?: string
  date_joined?: string
  last_login?: string | null
}

// 登录请求参数
interface LoginParams {
  username: string
  password: string
}

// 注册请求参数
interface RegisterParams {
  username: string
  password: string
  email?: string
}

// 更新用户信息参数
interface UpdateProfileParams {
  email?: string
}

// 修改密码参数
interface ChangePasswordParams {
  old_password: string
  new_password: string
}

/**
 * 用户登录
 * @param params 登录参数
 */
export function login(params: LoginParams) {
  return request({
    url: '/creation/auth/login',
    method: 'POST',
    data: params
  })
}

/**
 * 用户注册
 * @param params 注册参数
 */
export function register(params: RegisterParams) {
  return request({
    url: '/creation/auth/register',
    method: 'POST',
    data: params
  })
}

/**
 * 用户登出
 */
export function logout() {
  return request({
    url: '/creation/auth/logout',
    method: 'POST'
  })
}

/**
 * 获取当前登录用户信息
 */
export function getUserInfo() {
  return request({
    url: '/creation/auth/info',
    method: 'GET'
  })
}

/**
 * 更新用户信息
 * @param params 更新参数
 */
export function updateProfile(params: UpdateProfileParams) {
  return request({
    url: '/creation/auth/update',
    method: 'POST',
    data: params
  })
}

/**
 * 修改密码
 * @param params 修改密码参数
 */
export function changePassword(params: ChangePasswordParams) {
  return request({
    url: '/creation/auth/change-password',
    method: 'POST',
    data: params
  })
}

// 导出类型
export type {
  UserInfo,
  LoginParams,
  RegisterParams,
  UpdateProfileParams,
  ChangePasswordParams
}